home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
utils
/
dtu140
/
dtu-api.doc
< prev
next >
Wrap
Text File
|
1995-03-13
|
12KB
|
169 lines
The DTU API:
------------
This file describes the API that is supported since DTU version 1.40.
All numbers mentioned in this file are written in hex!
The DTU API conforms (mostly) to the Alternative Mutliplex Interrupt
Specification. The description of this specification can be found in
Ralf Brown's Interrupt List.
A short summary: The programs which used the old multiplex interrupt
had fixed mux-numbers they installed themselves at.
The idea of the Alternative Mux is that a program scans
the Mux for the first free number available and installs
itself at that number. The TSR can return 2 signature
fields to another program to provide installation checks.
The other program checks the signatures and acts upon
that. The Alternative Mux Specification also has some
other predefined functions, of which DTU only supports
Function 01 and 03...
Below is a list of the functions supported. The function is passed via
register AL. All subfunctions are passed through register BL. The
registers which are used to return values, are the only ones modified.
All flags are preserved. All functions provided in the Extended API
return AL=0 if the Extended API is not installed...
╒Function╤═ Description ═════════════════════════════════════════════════╕
│ 00 │ Installation check Standard API │
│ │ ~~~~~~~~~~~~~~~~~~ │
│ │ Expects: Nothing Returns: AL = FF │
│ │ CX = Version of DTU │
│ │ (CH=Major,CL=Minor) │
│ │ DX:DI = Pointer to signature │
│ │ (See below) │
├────────┼─────────────────────────────────────────────────────────────────┤
│ 01 │ Get API Handler Address Extended API │
│ │ ~~~~~~~~~~~~~~~~~~~~~~~ │
│ │ Expects: Nothing Returns: AL = FF │
│ │ DX:BX = API Handler Address │
│ │ │
│ │ This address may be called directly to bypass the Multiplex │
│ │ Interrupt chain. Use the interrupt protocol (PUSHF/CALL FAR)! │
├────────┼─────────────────────────────────────────────────────────────────┤
│ 03 │ Pop up Extended API │
│ │ ~~~~~~ │
│ │ Expects: Nothing Returns: AL = 0 : Already active │
│ │ FF : Popped up OK │
│ │ BX = 0 │
│ │ │
│ │ BX is officially used as the returncode from the popup code. │
│ │ However, this function is implemented in the Extended API, │
│ │ which means that DTU's BUSY-FLAG is automatically set when │
│ │ processing this function. In other words: No error can be │
│ │ generated using this function, thus no other returncode is │
│ │ defined... │
├────────┼─────────────────────────────────────────────────────────────────┤
│ 10 │ Extended API Install Check Standard API │
│ │ ~~~~~~~~~~~~~~~~~~~~~~~~~~ │
│ │ Expects: Nothing Returns: AL = FF │
│ │ BL = 0 : No Extended API │
│ │ 1 : Ext. API loaded │
├────────┼─────────────────────────────────────────────────────────────────┤
│ 11 │ Utility Install Check Extended API │
│ │ ~~~~~~~~~~~~~~~~~~~~~ │
│ │ Expects: BL = Subfunction: │
│ │ │
│ │ 00: Get number of utilities installed │
│ │ Expects: Nothing │
│ │ Returns: AL = FF │
│ │ BL = Number of utilities │
│ │ │
│ │ 01: Get installed utilities │
│ │ Expects: DX:DI = Pointer to buffer │
│ │ (1 byte for each utility) │
│ │ Returns: AL = FF │
│ │ Buffer filled │
│ │ │
│ │ The buffer is filled with a set of 0's and │
│ │ 1's. The first byte corresponds to utility │
│ │ 0, the second to 1, etc. If a byte is zero │
│ │ it means that the utility is not installed. │
│ │ If it's non-zero, the utility is loaded. │
├────────┼─────────────────────────────────────────────────────────────────┤
│ 20 │ Get Pop-up Handler Address Extended API │
│ │ ~~~~~~~~~~~~~~~~~~~~~~~~~~ │
│ │ Expects: Nothing Returns: AL = FF │
│ │ DX:DI = Address of DTU's │
│ │ pop-up handler │
│ │ │
│ │ This address may be called directly to let DTU pop up. Use │
│ │ the interrupt protocol for the call (PUSHF/CALL FAR)! │
├────────┼─────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
The pointer to the signature fields (Function 00) points to the following
structure:
Offset Length Description
00 8 Blank padded name of Software Producer
08 8 Blank padded program name
10 max 64. ASCIIZ string with description of the program